#pragma once
#include "Agent.h"
#include "StaticObject.h"
#include <Ogre.h>
#include <vector>

class Scene
{
public:
	Scene(void);
	~Scene(void);

	void update(const Ogre::FrameEvent& evt);

	void setSceneManager(Ogre::SceneManager* pSceneMgr);
	void setGroundEntity(Ogre::Entity* pGround);
	void setAmbientLight(const Ogre::ColourValue& colour);
	void setPointLight(const Ogre::Vector3& position, const Ogre::ColourValue& specular, const Ogre::ColourValue& diffuse);

	void addStaticObject(StaticObject* pObject);
	void addAgent(Agent* pAgent);
private:
	Ogre::SceneManager* mpSceneMgr;
	Ogre::Entity* mpGround;

	std::vector<Agent*> mAgents;
	std::vector<StaticObject*> mObjects;
};

